package site.wanjiahao.session;

import io.netty.channel.Channel;

import java.util.Set;

public interface GroupSession {

    /**
     * 创建组
     * @param gName
     * @return
     */
    boolean createGroup(String gName);

    /**
     * 列出当前组的成员
     * @param gName 组名称
     * @return 组成员
     */
    Set<String> listMembers(String gName);

    /**
     * 加入组
     * @param gName 组名称
     * @param channel 当前用户的通道退学
     * @return 加入与否
     */
    boolean join(String gName, Channel channel);


    /**
     * 退出组
     * @param gName 组名称
     * @param channel 当前用户的通道退学
     * @return 加入与否
     */
    boolean quit(String gName, Channel channel);

    /**
     * 列出所有组
     * @return 返回所有组
     */
    Set<String> listGroup();

    /**
     * 列出当前组的所有通道对象
     */
    Set<Channel> listChannel(String gName);

    String getGroupName(Channel channel);


}
